import 'package:flutter/material.dart';
import 'package:magic_car/UI/Loading.dart';
import 'package:magic_car/UI/update_dialog.dart';
import 'package:magic_car/jiance/jiance_detail.dart';
import 'package:magic_car/util/HttpHelper.dart';
import 'package:package_info/package_info.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:flutter_cupertino_date_picker_fork/flutter_cupertino_date_picker_fork.dart';
import 'package:toast/toast.dart';
import 'package:flutter/services.dart';
import 'package:date_format/date_format.dart';
import 'dart:io';

class IOrderPage extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return new ActState();
  }
}

class ActState extends State<IOrderPage> with SingleTickerProviderStateMixin {
  List<Choice> _tabs = [];
  TabController mTabController;
  int mCurrentPosition = 0;
  int type = 0;
  List orders = [];
  Map userinfo = new Map();
  bool isInspector = true;
  bool endtest = false;
  bool hasmore = false;
  int page = 1;
  String MIN_DATETIME = '1900-01-01';
  String MAX_DATETIME = '2025-11-01';
  String INIT_DATETIME = '2020-05-01';
  String _format = 'yyyy-MMMM';
  List Inspector = [];
  String total_num = '0';

  DateTime _dateTime;
  ScrollController _controller = new ScrollController();

  DateTimePickerLocale _locale = DateTimePickerLocale.zh_cn;
//DateTimePickerLocale _locale = Locale('zn');
  List<DateTimePickerLocale> _locales = DateTimePickerLocale.values;
  List month = [
    '不限',
    '2020-01',
    '2020-02',
    '2020-03',
    '2020-04',
    '2020-05',
    '2020-06',
    '2020-07',
    '2020-08',
  ];
  List items = [
    {
      'title': '月份',
      'select': false,
      'value': '',
      'code': 'online',
      'option': '全部,合格,不合格',
      'type': 1,
      'value_des': ''
    },
    {
      'title': '日期',
      'select': false,
      'value': '',
      'code': 'underline',
      'option': '全部,合格,不合格',
      'type': 2,
      'value_des': ''
    },
    {
      'title': '检测师',
      'select': false,
      'value': '',
      'code': 'inspector',
      'option': '全部,是,否',
      'type': 3,
      'value_des': ''
    },
    // {
    //   'title': '站点',
    //   'select': false,
    //   'value': '',
    //   'code': 'site',
    //   'type': 2,
    //   'value_des': ''
    // },
  ];
  @override
  @override
  Widget build(BuildContext context) {
    return
        // new MaterialApp(

        //   debugShowCheckedModeBanner: false,

        // home:
        new Scaffold(
      appBar: new AppBar(
        title: new Text(
          '订单',
          style: TextStyle(color: Colors.black),
        ),
        backgroundColor: Colors.white,
        elevation: 0,
        bottom: new TabBar(
          indicatorSize: TabBarIndicatorSize.label,
          indicatorColor: Color.fromRGBO(27, 182, 251, 1),
          labelColor: Color.fromRGBO(27, 182, 251, 1),
          unselectedLabelColor: Colors.black45,
          tabs: _tabs.map((Choice choice) {
            return new Tab(
              text: choice.title,
            );
          }).toList(),
          controller: mTabController,
        ),
      ),
      body: new TabBarView(
        children: _tabs.map((Choice choice) {
          return new Padding(
              padding: const EdgeInsets.all(0.0),
              child: new Container(
               // color: Color.fromRGBO(239, 239, 239, 1),
                child: Stack(children: <Widget>[
                  type != 2
                      ? new Container(height: 0)
                      : Align(
                          alignment: Alignment.topLeft,
                          child: Padding(
                              padding: new EdgeInsets.fromLTRB(10, 10, 10, 5),
                              child: new Container(
                                  child: new Column(
                                      mainAxisAlignment:
                                          MainAxisAlignment.start,
                                      crossAxisAlignment:
                                          CrossAxisAlignment.start,
                                      children: <Widget>[
                                    // new Container(
                                    //   child: new TextField(
                                    //     onSubmitted: (value) {

                                    //     },
                                    //     // controller: _phonecontroller,
                                    //     decoration: new InputDecoration(
                                    //         border: InputBorder.none,
                                    //         hintText: '搜索',
                                    //         prefixIcon:
                                    //             Icon(Icons.search)),
                                    //   ),
                                    //   decoration: new BoxDecoration(
                                    //     color: Colors.white,
                                    //     //设置四周圆角 角度 这里的角度应该为 父Container height 的一半
                                    //     borderRadius: BorderRadius.all(
                                    //         Radius.circular(25.0)),
                                    //     //设置四周边框
                                    //     border: new Border.all(
                                    //         width: 1,
                                    //         color: Colors.white),
                                    //   ),
                                    // ),
                                    new Container(
                                      child: filter(),
                                    )
                                  ])))),
                  type != 2
                      ? new Container(height: 0)
                      : Align(
                          alignment: Alignment.topLeft,
                          child: Padding(
                              padding: new EdgeInsets.fromLTRB(20, 50, 10, 5),
                              child: new Container(
                                  child: new Column(
                                      mainAxisAlignment:
                                          MainAxisAlignment.start,
                                      crossAxisAlignment:
                                          CrossAxisAlignment.start,
                                      children: <Widget>[
                                    new Container(
                                      child: new Text(
                                        '总计：' + total_num + '单',
                                        style: TextStyle(fontSize: 14),
                                      ),
                                    )
                                  ])))),
                  Align(
                      alignment: Alignment.bottomCenter,
                      child: Padding(
                          padding: new EdgeInsets.fromLTRB(
                              0, type != 2 ? 0 : 75, 0, 10),
                          child: new ListView(
                            controller: _controller,
                            children: <Widget>[buildcontent()],
                          )))
                ]),
                // Stack(children: <Widget>[
              ));
        }).toList(),
        controller: mTabController,
      ),
    );
  }

  void _showDatePicker(item) {
    print('选择日期');
    DatePicker.showDatePicker(
      context,
      onMonthChangeStartWithFirstDate: true,
      pickerTheme: DateTimePickerTheme(
        showTitle: true,
        confirm: Text('确定', style: TextStyle(color: Colors.red)),
        cancel: Text('不限', style: TextStyle(color: Colors.cyan)),
      ),
      minDateTime: DateTime.parse(MIN_DATETIME),
      maxDateTime: DateTime.parse(MAX_DATETIME),
      initialDateTime: _dateTime,
      dateFormat: _format,
      locale: _locale,
      onClose: () => print("----- onClose -----"),
      onCancel: () {
        //不限
        setState(() {
          item['value_des'] = item['type'] == 1 ? '月份' : '日期';
          item['value'] = '';
          item['select'] = false;
        });
        page = 1;
        loaddata();
      },
      onChange: (dateTime, List<int> index) {
        print(dateTime);
        setState(() {
          //_dateTime = dateTime;
        });
      },
      onConfirm: (dateTime, List<int> index) {
        print(dateTime);
        print(item);
        setState(() {
          //  String code = item["code"];
          if (item['type'] == 2) {
            item["value"] = formatDate(dateTime, [yyyy, "-", mm, '-', dd]);

            item['value_des'] = formatDate(dateTime, [yyyy, "-", mm, '-', dd]);
          } else {
            item["value"] = formatDate(dateTime, [yyyy, "-", mm]);

            item['value_des'] = formatDate(dateTime, [yyyy, "-", mm]);
          }

          for (int i = 0; i < items.length - 1; i++) {
            if (item != items[i]) {
              items[i]['select'] = false;
              items[i]['value'] = "";
              items[i]['value_des'] = i == 0 ? '月份' : '日期';
            }
          }
          item['select'] = true;
          // item['value']=dateTime;
          //formalities[code] = item["value"];
        });
        setState(() {
          // _dateTime = dateTime;
        });
        page = 1;
        loaddata();
        //saveResult();
      },
    );
  }

  //检查更新

  void _showUpdateDialog(content, url) {
    showDialog<void>(
        context: context,
        barrierDismissible: false,
        builder: (_) => UpdateDialog(content, url));
  }

  checkversion() async{
    if (Platform.isAndroid) {
      SharedPreferences pref = await SharedPreferences.getInstance();
      Map<String, String> map = new Map();
      // map["id"] = pref.getString('uid');

      HttpHelper.post(HttpHelper.API_Version, (data) async {
        //loadpage.close();
        if (data != null) {
          print(data);

          PackageInfo packageInfo = await PackageInfo.fromPlatform();
          String localVersion = packageInfo.version;
          String romot_version = data['VersionName'];
          if (localVersion != romot_version) {
            // Sputi.putString("versionmodify", data['ModifyContent']);
            // SpUtil.putString("app_down", data['DownloadUrl']);
            pref.setString("versionmodify", data['ModifyContent']);
            pref.setString("app_down", data['DownloadUrl']);
            // showupdates(data);
            Future.delayed(Duration(seconds: 3), () {
              _showUpdateDialog(data['ModifyContent'], data['DownloadUrl']);
            });
          }
        }
      }, params: map);
    }
  }

  Widget filter() {
    List<Widget> tiles = [];
    Widget content;

    for (var i = 0; i < items.length; i++) {
      var radios = items[i]['title'];
      bool checkvalue = false;

      //  bool has = RegExp(item['value']).hasMatch(radios);
      if (radios != "") {
        tiles.add(Padding(
            padding: new EdgeInsets.fromLTRB(10, 5, 0, 5),
            child: GestureDetector(
                // key: _myKey,
                onTap: () {
                  if (items[i]['type'] == 2 || items[i]['type'] == 1) {
                    if (items[i]['type'] == 2) {
                      _format = 'yyyy-MMMM-dd';
                    } else {
                      _format = 'yyyy-MMMM';
                    }

                    _showDatePicker(items[i]);
                  } else {
                    showSiteView();
                  }

                  //showSiteView();
                },
                child: Container(
                  width: 100,
                  padding: EdgeInsets.symmetric(vertical: 8, horizontal: 10),
                  child: Center(
                      child: Text(
                    items[i]['value_des'] == ""
                        ? radios
                        : items[i]['value_des'],
                    style: new TextStyle(
                        fontSize: 10,
                        color: items[i]['select'] == false
                            ? Color.fromRGBO(120, 120, 120, 1)
                            : Colors.white),
                  )),
                  decoration: new BoxDecoration(
                    color: items[i]['select'] == false
                        ? Color.fromRGBO(225, 225, 225, 1)
                        : Colors.blue,
                    borderRadius:
                        new BorderRadius.all(new Radius.circular(10.0)),
                  ),
                ))));
      }

      // tiles.add(

    }
    content = new Container(
        child: new Wrap(
      spacing: 0,
      runSpacing: 0,
      children: tiles,
    ));

    return content;
  }

  showSiteView() {
    showModalBottomSheet(
        context: context,
        builder: (BuildContext context) {
          return showSite();
        });
  }

  Widget showSite() {
    return new Container(
      height: 300.0,
      child: new Column(
        children: <Widget>[
          new Padding(
            padding: EdgeInsets.fromLTRB(0.0, 10.0, 0.0, 0.0),
            child: new Container(
                height: 240.0,
                child: new ListView(children: <Widget>[siteView()])),
          ),
          new Container(
            height: 0.5,
            color: Colors.blueGrey,
          ),
          new Center(
            child: new Padding(
              padding: EdgeInsets.fromLTRB(0.0, 12.0, 0.0, 8.0),
              child: GestureDetector(
                  behavior: HitTestBehavior.opaque,
                  onTap: () {
                    Navigator.of(context).pop();
                    List temp = items;
                    temp[2]['value'] = "";
                    temp[2]['value_des'] = "检测师";
                    temp[2]['select'] = false;

                    setState(() {
                      items = temp;
                    });

                    page = 1;
                    loaddata();
                  },
                  child: new Text(
                    '不限',
                    style:
                        new TextStyle(fontSize: 18.0, color: Colors.blueGrey),
                  )),
            ),
          ),
        ],
      ),
    );
  }

  Widget siteView() {
    List<Widget> tiles = [];
    Widget content;
    for (var item in Inspector) {
      tiles.add(GestureDetector(
          onTap: () {
            // time_str = item;
            Navigator.of(context).pop();
            List temp = items;
            temp[2]['value'] = item['id'].toString();
            temp[2]['value_des'] = item['name'];
            temp[2]['select'] = true;
            setState(() {
              items = temp;
            });
            page = 1;
            loaddata();
          },
          child: Container(
              height: 40, child: Center(child: new Text(item['name'])))));
    }

    content = new Column(
        children: tiles //重点在这里，因为用编辑器写Column生成的children后面会跟一个<Widget>[]，
        //此时如果我们直接把生成的tiles放在<Widget>[]中是会报一个类型不匹配的错误，把<Widget>[]删了就可以了
        );
    return content;
  }

  @override
  deactivate() async {
    var bool = ModalRoute.of(context).isCurrent;
    if (bool) {
      // print('页面出现时');
      // loaduserinfo();
    }
  }

  @override
  void initState() {
    super.initState();

    _tabs.add(Choice(title: '待处理', position: 0));

    _tabs.add(Choice(title: '已指派', position: 1));
    // _tabs.add(Choice(title: '待评价', position: 2));
    _tabs.add(Choice(title: '已完成', position: 3));
    _controller.addListener(() {
      if (_controller.position.pixels == _controller.position.maxScrollExtent) {
        print('滑动到了最底部');
        if (hasmore) loaddata();
      }
    });
    mTabController = new TabController(vsync: this, length: _tabs.length);
    //判断TabBar是否切换
    mTabController.addListener(() {
      if (mTabController.index == mCurrentPosition) return;
      print('滑动监听' + mTabController.index.toString());
      setState(() {
        mCurrentPosition = mTabController.index;

        if (mCurrentPosition != 2) {
          //切换状态时清除筛选条件
          // items.forEach((element) {
          //   element['value']="";

          // });
        }

        if (mTabController.index == 1) {
          type = 1;
        } else
          type = mTabController.index;
      });
      page = 1;
      loaddata(); //滑动时加载数据
    });
    //loading();
    loaddata();
    loadInspctordata();
    // loaddata(); //页面展示时加载数据
    // loaduserinfo();
   // checkversion();
  }

  loadInspctordata() async {
    if (Inspector.length > 0) return;
    Map<String, String> map = new Map();
    SharedPreferences pref = await SharedPreferences.getInstance();
    map["id"] = pref.getString('uid');
    // map["page"] = page.toString();
    //  map["keyword"] = keyword;
    map["type"] = "1";
    var role = pref.getString('role');
    if (role == '1') {
      map['type'] = '2';
    }
    items.forEach((element) {
      var code = element['code'];
      map[code] = element['value'];
    });
    print(map);

    HttpHelper.post(HttpHelper.API_MyInspector, (data) async {
      if (data != null) {
        print(data);
        print(data["info"].length.toString());
        if (data["info"].length == 0) {
          Toast.show('暂无检测师数据', context);
        } else {
          setState(() {
            Inspector = data['info'];
          });
        }
      }
    }, params: map);
  }

  loaduserinfo() async {
    // LoadingPage loadpage = new LoadingPage(context);
    // loadpage.show();
    SharedPreferences pref = await SharedPreferences.getInstance();
    Map<String, String> map = new Map();
    map["id"] = pref.getString('uid');

    HttpHelper.post(HttpHelper.API_Userinfo, (data) async {
      //loadpage.close();
      if (data != null) {
        if (data["code"].toString() == "1") {
          if (data["info"]["avatar"].length != 0) {
            setState(() {
              // avatar = data["info"]["avatar"];
            });
          }
          var info = data["info"];
          if (info["isInspector"].toString() == "1") {
            //最终通过审核
            setState(() {
              isInspector = true;
            });
            loaddata(); //获取订单数据
          } else {
            setState(() {
              isInspector = false;
            });
            if (info["starttest"].toString() == "1") {
              //考试结束
              setState(() {
                endtest = true;
              });
            }
          }
          setState(() {
            userinfo = data["info"];
          });
          //pref.setStringList('userinfo', data["info"]);

        }
      }
    }, params: map);
  }

  //加载数据
  loaddata() async {
    // Toast.show('数据正在加载中...', context);
    Map<String, String> map = new Map();
    SharedPreferences pref = await SharedPreferences.getInstance();

    if (pref.getString('role') == "0") {
      map["issite"] = "1";
    } else {
      map["ispartner"] = "1";
    }
    // print(pref.getStringList('userinfo'));
    map["id"] = pref.getString('uid');
    if (type.toString() == "0") {
      map["assign"] = type.toString();
    } else if (type.toString() == "1") {
      map["assign"] = type.toString();
    } else
      map["type"] = type.toString();

    print(map);
    if (type == 2) {
      map['month'] = items[0]['value'];
      map['day'] = items[1]['value'];
      map['inspector'] = items[2]['value'];
    }
    map['page'] = page.toString();
    if (page == 1) orders = [];
    print(map);
    HttpHelper.postRequest(HttpHelper.API_SiteOrder, false, true, context,
        (data) async {
      if (data != null) {
        //Toast.show(data["msg"],context);
        Future.delayed(Duration(seconds: 1), () {
          //loadpage.close();
          if (data["code"].toString() == "1") {
            setState(() {
              orders.addAll(data["info"]['list']);
              total_num = data["info"]['total'];
            });
            if (data["info"]['list'].length == 10) {
              page++;
              setState(() {
                hasmore = true;
              });
            } else {
              setState(() {
                hasmore = false;
              });
            }
            //pref.setStringList('userinfo', data["info"]);

          }
        });
      }
    }, params: map);
  }

  @override
  void dispose() {
    super.dispose();
    mTabController.dispose();
  }

//MediaQuery.of(context).size.height
  Widget buildcontent() {
    List<Widget> tiles = [];
    Widget content;
    if (orders.length == 0) {
      tiles.add(Center(
          child: Column(
              crossAxisAlignment: CrossAxisAlignment.center,
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
            Padding(
                padding: new EdgeInsets.fromLTRB(
                    15, MediaQuery.of(context).size.height / 2 - 100, 15, 0),
                child: new Text('暂无订单数据'))
          ])));
    } else {
      for (var i = 0; i < orders.length; i++) {
        var order = orders[i];
        tiles.add(Padding(
            padding: new EdgeInsets.fromLTRB(15, 10, 15, 0),
            child: Container(
              decoration: new BoxDecoration(
                color: Colors.white,
                borderRadius: BorderRadius.all(Radius.circular(10.0)),
              ),
              child: Column(
                children: <Widget>[
                  Padding(
                    padding: new EdgeInsets.fromLTRB(20, 10, 20, 10),
                    child: Row(
                      children: <Widget>[
                        Expanded(
                            flex: 2,
                            child: new Text(
                              order["order_sn"],
                              style: TextStyle(
                                  color: Color.fromRGBO(51, 51, 51, 1),
                                  fontSize: 13),
                            )),
                        Expanded(
                          flex: 1,
                          child: new Align(
                              alignment: Alignment.centerRight,
                              child: Container(
                                  padding: new EdgeInsets.fromLTRB(5, 2, 5, 2),
                                  color: Color.fromRGBO(27, 182, 251, 0.3),
                                  child: new Text(
                                    order["test_type"],
                                    style: TextStyle(
                                        color: Color.fromRGBO(27, 182, 251, 1),
                                        fontSize: 12),
                                  ))),
                        )
                      ],
                    ),
                  ),
                  Padding(
                    padding: new EdgeInsets.fromLTRB(20, 10, 20, 10),
                    child: Row(
                      children: <Widget>[
                        Expanded(
                            flex: 1,
                            child: new Text(
                              '联系电话',
                              style: TextStyle(
                                  fontSize: 12,
                                  color: Color.fromRGBO(51, 51, 51, 1)),
                            )),
                        Expanded(
                          flex: 1,
                          child: new Align(
                              alignment: Alignment.centerRight,
                              child: Container(
                                  child: new Text(
                                order["phone_num"],
                                style: TextStyle(
                                    color: Color.fromRGBO(153, 153, 153, 1),
                                    fontSize: 12),
                              ))),
                        )
                      ],
                    ),
                  ),
                  Padding(
                    padding: new EdgeInsets.fromLTRB(20, 0, 20, 10),
                    child: Row(
                      children: <Widget>[
                        Expanded(
                            flex: 1,
                            child: new Text(
                              '预约时间',
                              style: TextStyle(
                                  fontSize: 12,
                                  color: Color.fromRGBO(51, 51, 51, 1)),
                            )),
                        Expanded(
                          flex: 1,
                          child: new Align(
                              alignment: Alignment.centerRight,
                              child: Container(
                                  child: new Text(
                                order['order_time'],
                                style: TextStyle(
                                    color: Color.fromRGBO(153, 153, 153, 1),
                                    fontSize: 12),
                              ))),
                        )
                      ],
                    ),
                  ),
                  Padding(
                    padding: new EdgeInsets.fromLTRB(20, 0, 20, 10),
                    child: Row(
                      children: <Widget>[
                        Expanded(
                            flex: 1,
                            child: new Text(
                              '订单金额',
                              style: TextStyle(
                                  fontSize: 12,
                                  color: Color.fromRGBO(51, 51, 51, 1)),
                            )),
                        Expanded(
                          flex: 1,
                          child: new Align(
                              alignment: Alignment.centerRight,
                              child: Container(
                                  child: new Text(
                                '¥' + order['orderPrice'],
                                style: TextStyle(
                                    color: Color.fromRGBO(251, 73, 57, 1),
                                    fontSize: 12),
                              ))),
                        )
                      ],
                    ),
                  ),
                  Padding(
                    padding: new EdgeInsets.fromLTRB(20, 0, 20, 10),
                    child: Row(
                      children: <Widget>[
                        Expanded(
                            flex: 1,
                            child: new Text(
                              '汽车品牌',
                              style: TextStyle(
                                  fontSize: 12,
                                  color: Color.fromRGBO(51, 51, 51, 1)),
                            )),
                        Expanded(
                          flex: 1,
                          child: new Align(
                              alignment: Alignment.centerRight,
                              child: Container(
                                  child: new Text(
                                //    "汽车品牌",
                                order["brand_string"]["name"],
                                style: TextStyle(
                                    color: Color.fromRGBO(153, 153, 153, 1),
                                    fontSize: 12),
                              ))),
                        )
                      ],
                    ),
                  ),
                  Padding(
                    padding: new EdgeInsets.fromLTRB(20, 0, 20, 10),
                    child: Row(
                      children: <Widget>[
                        Expanded(
                            flex: 1,
                            child: new Text(
                              '状态',
                              style: TextStyle(
                                  fontSize: 12,
                                  color: Color.fromRGBO(51, 51, 51, 1)),
                            )),
                        Expanded(
                          flex: 1,
                          child: new Align(
                              alignment: Alignment.centerRight,
                              child: Container(
                                  child: new Text(
                                order['status_str'],
                                style: TextStyle(
                                    color: Color.fromRGBO(251, 73, 57, 1),
                                    fontSize: 12),
                              ))),
                        )
                      ],
                    ),
                  ),
                  Padding(
                    padding: new EdgeInsets.fromLTRB(20, 10, 20, 10),
                    child: Align(
                        alignment: Alignment.centerRight,
                        child: new Container(
                          child: new Material(
                            //INK可以实现装饰容器
                            child: new Ink(
                              //用ink圆角矩形
                              // color: Colors.red,
                              decoration: new BoxDecoration(
                                //背景
                                color: Colors.white,
                                //设置四周圆角 角度
                                borderRadius:
                                    BorderRadius.all(Radius.circular(15.0)),
                                //设置四周边框
                                border: new Border.all(
                                    width: 1,
                                    color: Color.fromRGBO(27, 182, 251, 1)),
                              ),
                              child: new InkWell(
                                  //圆角设置,给水波纹也设置同样的圆角
                                  //如果这里不设置就会出现矩形的水波纹效果
                                  borderRadius: new BorderRadius.circular(15.0),
                                  //设置点击事件回调
                                  onTap: () {
                                    Navigator.of(context).push(
                                        new MaterialPageRoute(builder: (_) {
                                      return new JIanceDetailPage(
                                          order["id"].toString());
                                    }));
                                  },
                                  child: Container(
                                    //设置 child 居中
                                    alignment: Alignment(0, 0),
                                    height: 30,
                                    width: 85,
                                    child: Text(
                                      "查看订单",
                                      style: TextStyle(
                                          color:
                                              Color.fromRGBO(27, 182, 251, 1)),
                                    ),
                                  )),
                            ),
                          ),
                        )
                        // child: new RaisedButton(
                        //   child: Text('申请补考'),
                        //   onPressed: () {},
                        // ),
                        ),
                  ),
                ],
              ),
            )));
      }
    }
    content = new Column(
        children: tiles //重点在这里，因为用编辑器写Column生成的children后面会跟一个<Widget>[]，
        //此时如果我们直接把生成的tiles放在<Widget>[]中是会报一个类型不匹配的错误，把<Widget>[]删了就可以了
        );
    return content;
  }
}

Widget buttons() {
  Widget button = Container(
    margin: EdgeInsets.only(left: 40, top: 40),
    child: new Material(
      //INK可以实现装饰容器
      child: new Ink(
        //用ink圆角矩形
        // color: Colors.red,
        decoration: new BoxDecoration(
          //背景
          color: Colors.white,
          //设置四周圆角 角度
          borderRadius: BorderRadius.all(Radius.circular(25.0)),
          //设置四周边框
          border: new Border.all(width: 1, color: Colors.red),
        ),
        child: new InkWell(
            //圆角设置,给水波纹也设置同样的圆角
            //如果这里不设置就会出现矩形的水波纹效果
            borderRadius: new BorderRadius.circular(25.0),
            //设置点击事件回调
            onTap: () {},
            child: Container(
              //设置 child 居中
              alignment: Alignment(0, 0),
              height: 50,
              width: 300,
              child: Text("点击 Container 圆角边框"),
            )),
      ),
    ),
  );
  return button;
}

class Choice {
  const Choice({this.title, this.icon, this.position});
  final String title;
  final int position;
  final IconData icon;
}
